Systems and methods for managing computing systems utilizing augmented reality

ABSTRACT

Various embodiments for managing computing systems are provided. In one embodiment, a method comprises comparing an identified target device in a captured environmental input to a model of the target device; recognizing, in real-time, a status condition of the target device based on the comparison; and determining if the target device is functioning properly if the target device and the model of the target device match, wherein if the target device is not functioning properly: a cause of error and troubleshooting instructions are displayed.

CROSS-REFERENCE TO RELATED APPLICATIONS

This Application is a Continuation of U.S. patent application Ser. No.14/249,619, filed on Apr. 10, 2014, now U.S. Pat. No. 9,219,665, issuedDec. 12, 2015, which is a Continuation of U.S. patent application Ser.No. 13/532,157, filed Jun. 25, 2012, now U.S. Pat. No. 8,990,385, issuedMar. 24, 2015, which is a Continuation of U.S. patent application Ser.No. 13/082,298, filed on Apr. 7, 2011, now U.S. Pat No. 8,738,754,issued May 27, 2014.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates generally to computing systems, and moreparticularly to, systems and methods for managing computing systemsutilizing augmented reality.

Description of the Related Art

Augmented reality is utilized primarily to passively obtain informationregarding a particular location identified in a captured image. Forexample, a user can obtain the menu of a particular restaurant viaaugmented reality utilizing a captured image of the restaurant. In thisexample, a captured image of the exterior of the restaurant is used toidentify the restaurant. Once the restaurant is identified, a user iscapable of obtaining previously stored information related to therestaurant (e.g., the menu, consumer rating, location, etc.). Whileobtaining information via augmented reality is helpful in manysituations, contemporary uses of augmented reality are limited.

For example, field technicians are often required to inspect computingsystems to determine if the computing systems are functioning properly.If a computing system is experiencing an error condition, the fieldtechnician usually diagnoses the one or more causes of the errorcondition and then troubleshoots the error condition. Often, the fieldtechnician accesses a management network to determine the errorcondition and/or to access an error log for the computer system(s) thatis/are experiencing an error condition. At times, however, the fieldtechnician may not be able to access the management network because, forexample, the device the field technician is utilizing to access themanagement network may be malfunctioning and/or the management networkmay not be functioning properly. Alternatively, the field technician maynot be associated with the entity in charge of the management networkand, for security reasons, the entity in charge of the managementnetwork does not desire to provide the field technician with access tothe management system. Therefore, it is desirable for a field technicianto have a way to remotely determine the status condition of a computingsystems and diagnose/troubleshoot errors in the computing system withoutaccessing the management network.

SUMMARY OF THE INVENTION

Various embodiments for managing computing systems are provided. In oneembodiment, a method comprises comparing an identified target device ina captured environmental input to a model of the target device;recognizing, in real-time, a status condition of the target device basedon the comparison; and determining if the target device is functioningproperly if the target device and the model of the target device match,wherein if the target device is not functioning properly: a cause oferror and troubleshooting instructions are displayed.

BRIEF DESCRIPTION OF THE DRAWINGS

In order that the advantages of the invention will be readilyunderstood, a more particular description of the invention brieflydescribed above will be rendered by reference to specific embodimentsthat are illustrated in the appended drawings. Understanding that thesedrawings depict only typical embodiments of the invention and are nottherefore to be considered to be limiting of its scope, the inventionwill be described and explained with additional specificity and detailthrough the use of the accompanying drawings, in which:

FIG. 1 is a block diagram of one embodiment of a system for managingcomputing systems;

FIG. 2 is a block diagram of one embodiment of a mobile device utilizedin the system of FIG. 1;

FIG. 3. is a diagram of one embodiment of a repair interface includedwithin the mobile device of FIG. 2;

FIG. 4 is a flow diagram of one embodiment of a method for managingcomputing systems utilizing augmented reality; and

FIG. 5 is a flow diagram of another embodiment of a method for managingcomputing systems utilizing augmented reality.

DETAILED DESCRIPTION OF THE DRAWINGS

The illustrated embodiments below provide systems and methods formanaging computing systems. Also provided are physical computer storagemediums (e.g., an electrical connection having one or more wires, aportable computer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), an optical fiber, a portable compact disc read-onlymemory (CD-ROM), an optical storage device, a magnetic storage device,or any suitable combination of the foregoing) comprising a computerprogram product method for managing computing systems.

Turning now to the figures, FIG. 1 is a block diagram of one embodimentof a system 100 for managing computing systems. At least in theillustrated embodiment, system 100 comprises a mobile device 200configured to communicate with a network 150 (e.g., the Internet, a widearea network (WAN), a local area network (LAN), and the like networks)and system 175, which system may be external to and/or included as aportion of system 100.

System 175 may be any type of computing system and/or computing device.In one embodiment, system 175 comprises one or more sub-devices 1752(e.g., one or more servers, one or more storage devices, one or morepower supplies, one or more blade chassis, etc.).

In various embodiments, each of the one or more sub-devices 1752 insystem 175 comprises an identifier 1754, which may be any type ofidentifier known in the art or developed in the future. In oneembodiment, each identifier 1754 is a bar code or other type ofalphanumeric identifier. In another embodiment, each identifier 1754 isa radio frequency identifier (RFID) device (e.g., a RFID tag). In yetanother embodiment, the location of the each respective computing device1752 is the identifier 1754 for each computing device 1752. In thisembodiment, the location may be with respect to a fixed object, withrespect to the environment within each computing device 1752 resides,and/or with respect to a global position of each computing device. Instill another embodiment, the shape, color, size, and/or other physicalcharacteristic of each computing device 1752 is the identifier 1754 foreach respective computing device 1752. In an alternative embodiment, asound, noise, and/or other auditory cue generated by each respectivecomputing device 1752 is the identifier 1754 for each respectivecomputing device 1752. In yet another alternative embodiment, avibration, a motion, and/or other tactile cue generated by eachrespective computing device 1752 is the identifier 1754 for eachrespective computing device 1752.

Each identifier 1754, in one embodiment, is the same type of identifier.For example, each identifier may be a bar code or other alphanumericidentifier that uniquely distinguishes each computing device 1752. Inanother embodiment, at least two sub-devices 1752 include differenttypes of identifiers 1754. For example, a first identifier 1754 on afirst computing device 1752 may be a bar code and a second identifier1754 for a second computing device 1752 may be the global position ofthe second computing device. Regardless of the type of identifier 1754,mobile device 200 is capable of capturing an environmental inputincluding the identifier 1754.

With reference now to FIG. 2, FIG. 2 is a block diagram of oneembodiment of mobile device 200 utilized in system 100 of FIG. 1. Atleast in the illustrated embodiment, mobile device 200 comprises atransceiver 210, one or more input devices 220, a display 230, one ormore capture devices 240, a memory 250, and a processor 260 coupled toone another via a bus 270 (e.g., a wired and/or wireless bus).

Transceiver 210 may be any system and/or device capable of communicating(e.g., transmitting and receiving data and/or signals) with a network(e.g., network 150). As such, transceiver 210 may be any transceiverknown in the art or developed in the future.

Input device(s) 220 may be any system and/or device capable of receivinginput from a user. Examples of input devices 220 include, but are notlimited to, a mouse, a key board, a microphone, a touch screen, and thelike input devices. As such, input device(s) 220 may be input deviceknown in the art or developed in the future. In the various embodiments,each input device 220 is in communication with display 230.

Display 230 may be any system and/or device capable of displaying data.As such, display 230 may be any display known in the art or developed inthe future. In one embodiment, display 230 includes a touch screen suchthat display 230 and input device 220 are integrated devices. In variousembodiments, display 230 is configured to display data received fromnetwork 150, input device(s) 230, and one or more capture devices 240.

Capture device(s) 240 may be any system and/or device capable ofcapturing environmental inputs (e.g., visual inputs, audio inputs, andtactile inputs). Examples of capture devices 240 include, but are notlimited to, a camera, a microphone, a global positioning system (GPS), agyroscope, a plurality of accelerometers, and the like capture devices.As such, capture device(s) 240 may be any capture device known in theart of developed in the future. In one embodiment, capture device 240 isa camera configured to capture images of the environment surroundingmobile device 200.

Memory 250 may be any system and/or device capable of storing data. Inone embodiment, memory 250 stores computer code comprising an augmentedreality module 2510. Augmented reality module 2510 comprisesinstructions that, when executed by processor 260, causes processor 260to perform a method of managing system 175.

Processor 260 is configured to execute the computer code comprisingaugmented reality module 2510. When executing augmented reality module2510, processor 260 is configured to receive and process a capturedenvironmental input representing at least a portion of system 175 fromcapture device 240.

In processing the captured environmental input, processor 260 isconfigured to identify one or more target devices in system 175 that arerepresented in the captured environmental input. For example, if thecaptured environmental input is an image of at least a portion of system175, processor 260 is configured to identify one or more target devicesin the captured image.

Processor 260 is configured to identify each target device utilizing theidentifier 1754 for each respective target device. For example, in acaptured image of system 175, processor 260 is configured to identifyeach target device via a bar code and/or other visual cue(s). In anotherexample, in a captured audio clip of system 175, processor 260 isconfigured to identify each target device via a sound, noise, and/orother audio cue(s). In still another example, in a captured tactile bitof system 175, processor 260 is configured to identify each targetdevice via a motion, vibration, and/or other tactile cue(s).

After the target device(s) is/are identified, processor 260 isconfigured to compare each identified target device with a model of therespective target device. The comparison is utilized to determine, inreal-time, a status condition (e.g., functioning properly, experiencinga warning condition, experiencing an error condition, etc.).Specifically, if the captured target device and the model match, thetarget device is functioning properly. If the captured target device andthe model do not match, processor 260 is configured to determine thatthe target device is experiencing a warning condition and/or an errorcondition (i.e., is not functioning properly) and is further configuredto recognize the type of error that is occurring in the target device.That is, processor 260 is configured to recognize an indicator (e.g., alight, a screen message, a sound, a vibration, a lack of a visual cue,etc.) in the captured environmental input and associate a particularerror condition with the indicator. For example, processor 260 may beconfigured to recognize in a captured image that a power indicator lightis “OFF” and associate a power failure with such condition.

In one embodiment, processor 260 is further configured to utilize arepair interface 2610 to determine one or more causes of the determinederror condition after the one or more error conditions have beenidentified. In response thereto, processor 260 is configured to display(e.g., overlay) the error condition (see e.g., FIG. 3), possiblecause(s) of the determined error condition, one or more possiblesolutions to the error condition, and/or instructions fortroubleshooting the error condition to the user.

In another embodiment, processor is configured to query, via transceiver210, network 150 (e.g., the Internet) regarding the error condition.Processor 260 is further configured to receive one or more possiblecauses of the determined error condition, one or more solutions to theerror condition, and/or instructions for troubleshooting the errorcondition. In response thereto, processor 260 is configured to display,via display 230, the possible cause(s) of the determined errorcondition, the one or more solutions to the error condition, and/orinstructions for troubleshooting the error condition to the user.

In continuing with the example above, if the power indicator is “OFF,”processor 260 will determine the reason the power is “OFF” on the targetdevice. In this example, repair interface 2610 or the data received fromnetwork 150 may indicate that the main power supply is experiencingproblems and/or present a error log and instruct processor 260 todisplay the problem and/or error log to the user. Processor 260 willthen display the problem and/or error log on display 230 and launchrepair interface 2610 so that the user is able to address the faultcondition.

In further continuation to the above example, the user may be instructedby repair interface 2610 to initiate an auxiliary power supply to thetarget device. In response thereto, the user may then be able tomanually initiate the auxiliary power supply to correct the determinederror condition.

In one embodiment, mobile device 200 is a cellular telephone (e.g., a“smart” phone). In other embodiments, mobile device 200 is a computingtablet, a notebook computing device, a netbook computing device, alaptop computing device, and/or the like computing device.

Turning now to FIG. 4, FIG. 4 is a flow diagram of one embodiment of amethod 400 for managing a system (e.g., system 100) utilizing augmentedreality. At least in the illustrated embodiment, method 400 starts by aprocessor (e.g., processor 260) receiving and processing a capturedenvironmental input representing at least a portion of a system (e.g.,system 175) from a capture device (e.g., capture device 240) (block405).

In processing the captured environmental input, method 400 comprisesidentifying one or more target devices in the system that arerepresented in the captured environmental input (block 410). In oneembodiment, method 400 utilizes a captured image of the system toidentify each target device. In another embodiment, method 400 utilizesa captured audio clip of the system to identify each target device. Instill another embodiment, method 400 utilizes a captured tactile bit ofthe system to identify each target device.

After the target device(s) is/are identified, method 400 comprisescomparing each identified target device with a model of the respectivetarget device (block 415) and determines, in real-time, if the targetdevice is experiencing a fault condition or other abnormality (block420). If the captured target device is not experiencing a faultcondition or other abnormality (i.e., is functioning properly), method400 comprises providing an indication to a user that the target deviceis functioning properly (block 425) and method 400 ends.

If the captured target device is not functioning properly, method 400comprises recognizing the type of fault that is occurring in the targetdevice (block 430). Method 400 further comprises querying a network(e.g., network 150) regarding the cause of the determined errorcondition after the one or more fault conditions have been determined(block 435).

Method 400 further comprises receiving from the network one or morecauses of the fault condition and troubleshooting instructions forrepairing the error condition (block 440). In response thereto, method400 comprises displaying, via a display (e.g., display 230), the one ormore causes of the error condition and the troubleshooting instructionsreceived from the network (block 445). Method 400 then ends.

With reference now to FIG. 5, FIG. 5 is a flow diagram of anotherembodiment of a method 500 for managing a system (e.g., system 100)utilizing augmented reality. At least in the illustrated embodiment,method 500 starts by a processor (e.g., processor 260) receiving andprocessing a captured environmental input representing at least aportion of a system (e.g., system 175) from a capture device (e.g.,capture device 240) (block 505).

In processing the captured environmental input, method 500 comprisesidentifying one or more target devices in the system that arerepresented in the captured environmental input (block 510). In oneembodiment, method 500 utilizes a captured image of the system toidentify each target device. In another embodiment, method 500 utilizesa captured audio clip of the system to identify each target device. Instill another embodiment, method 500 utilizes a captured tactile bit ofthe system to identify each target device.

After the target device(s) is/are identified, method 500 comprisescomparing each identified target device with a model of the respectivetarget device (block 515) and determines, in real-time, if the targetdevice is experiencing a fault condition or other abnormality (block520). If the captured target device is not experiencing a faultcondition or other abnormality (i.e., is functioning properly), method500 comprises providing an indication to a user that the target deviceis functioning properly (block 525) and method 500 ends.

If the captured target device is not functioning properly, method 500comprises recognizing the type of error that is occurring in the targetdevice (block 530). Method 500 further comprises launching a repairinterface (e.g., repair interface 2610) to determine the cause of thedetermined error condition and one or more possible solutions to theerror condition (block 535).

After the repair interface has determined the one or more causes and theone or more solutions to the determined error condition, method 500comprises displaying, via a display (e.g., display 230), the one or morecauses of the error condition and the one or more possible solutions tothe error condition (block 540). Method 500 then ends.

While at least one exemplary embodiment has been presented in theforegoing detailed description of the invention, it should beappreciated that a vast number of variations exist. It should also beappreciated that the exemplary embodiment or exemplary embodiments areonly examples, and are not intended to limit the scope, applicability,or configuration of the invention in any way. Rather, the foregoingdetailed description will provide those skilled in the art with aconvenient road map for implementing an exemplary embodiment of theinvention, it being understood that various changes may be made in thefunction and arrangement of elements described in an exemplaryembodiment without departing from the scope of the invention as setforth in the appended claims and their legal equivalents.

As will be appreciated by one of ordinary skill in the art, aspects ofthe present invention may be embodied as a system, method, or computerprogram product. Accordingly, aspects of the present invention may takethe form of an entirely hardware embodiment, an entirely softwareembodiment (including firmware, resident software, micro-code, etc.) oran embodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module,” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer-readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer-readable medium(s) may beutilized. The computer-readable medium may be a computer-readable signalmedium or a physical computer-readable storage medium. A physicalcomputer readable storage medium may be, for example, but not limitedto, an electronic, magnetic, optical, crystal, polymer, electromagnetic,infrared, or semiconductor system, apparatus, or device, or any suitablecombination of the foregoing. Examples of a physical computer-readablestorage medium include, but are not limited to, an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk,RAM, ROM, an EPROM, a Flash memory, an optical fiber, a CD-ROM, anoptical storage device, a magnetic storage device, or any suitablecombination of the foregoing. In the context of this document, acomputer-readable storage medium may be any tangible medium that cancontain, or store a program or data for use by or in connection with aninstruction execution system, apparatus, or device.

Computer code embodied on a computer-readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wired, optical fiber cable, radio frequency (RF), etc., or any suitablecombination of the foregoing. Computer code for carrying out operationsfor aspects of the present invention may be written in any staticlanguage, such as the “C” programming language or other similarprogramming language. The computer code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, or communication system, including, but notlimited to, a local area network (LAN) or a wide area network (WAN),Converged Network, or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).

Aspects of the present invention are described above with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer, other programmabledata processing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks. The computer program instructions may also beloaded onto a computer, other programmable data processing apparatus, orother devices to cause a series of operational steps to be performed onthe computer, other programmable apparatus or other devices to produce acomputer implemented process such that the instructions which execute onthe computer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the above figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

While one or more embodiments of the present invention have beenillustrated in detail, one of ordinary skill in the art will appreciatethat modifications and adaptations to those embodiments may be madewithout departing from the scope of the present invention as set forthin the following claims.

The invention claimed is:
 1. A method for managing computing systemsutilizing augmented reality using a processor, comprising: capturing anenvironmental input; identifying a target device in the capturedenvironmental input, the target device including at least one identifierincluded in the captured environmental input; comparing the identifiedtarget device in the captured environmental input to a model of thetarget device; recognizing, in real-time, a status condition of theidentified target device based on the comparison; and determining if theidentified target device is functioning properly if the identifiedtarget device and the model of the target device match, wherein if theidentified target device is not functioning properly, performing actionsincluding: recognizing at least one indicator of the identified targetdevice, and displaying a cause of error and troubleshootinginstructions, based on the at least one indicator of the identifiedtarget device.
 2. The method of claim 1, wherein identifying the targetdevice comprises identifying the target device via one of a bar code, aradio frequency identifier, and a position of the target device.
 3. Themethod of claim 1, further comprising a display coupled to theprocessor, the method further comprising displaying, via the display,the information regarding the status condition.
 4. The method of claim3, wherein displaying information regarding the status conditioncomprises displaying the troubleshooting instructions if the statuscondition is the error condition.
 5. The method of claim 1, whereincapturing the environmental input comprises capturing the environmentalinput utilizing one of an audio capturing device, a visual capturingdevice, and a tactile capturing device.
 6. The method of claim 1,wherein capturing the environmental input comprises capturing a staticvisual image of the target device utilizing a camera.
 7. The method ofclaim 1, wherein capturing the environmental input comprises capturingvideo images of the target device utilizing a camera.
 8. The method ofclaim 1, wherein the at least one indicator includes a power indicatorlight in the captured environmental input.
 9. The method of claim 1,wherein the at least one indicator includes a vibration in the capturedenvironmental input.
 10. The method of claim 1, wherein the at least oneindicator includes a screen message in the captured environmental input.11. The method of claim 1, wherein the at least one indicator includes asound in the captured environmental input.
 12. The method of claim 1,wherein the at least one indicator includes a lack of a visual cue inthe captured environmental input.
 13. The method of claim 1, furthercomprising automatically querying a network regarding the cause of errorin response to determining that the target device is not functioningproperly.
 14. The method of claim 13, wherein the cause of error and thetroubleshooting instructions are received in response to querying thenetwork.
 15. A method for managing computing systems utilizing augmentedreality using a processor, comprising: capturing an environmental input;identifying a target device in the captured environmental input, thetarget device including at least one identifier included in the capturedenvironmental input; determining whether the identified target devicematches a model of the target device; in response to the identifiedtarget device matching the model of the target device, determining thatthe identified target device is functioning properly; and in response tothe identified target device not matching the model of the identifiedtarget device, performing actions including: recognizing at least oneindicator of the target device in the captured environmental input,associating an error condition with the at least one indicator of theidentified target device, and displaying the associated error conditionand a troubleshooting instruction, based on the at least one indicator.16. The method of claim 15, wherein the at least one indicator includesa power indicator light in the captured environmental input.
 17. Themethod of claim 15, wherein the error condition includes a power failureof the identified target device.
 18. The method of claim 15, furthercomprising, in response to the identified target device not matching themodel of the identified target device, launching a repair interface forthe computing systems.
 19. The method of claim 15, further comprising,in response to the identified target device not matching the model ofthe identified target device, automatically querying a network regardingthe error condition.
 20. The method of claim 19, further comprisingreceiving at least one cause of error, at least one solution to theerror condition, and the troubleshooting instruction in response toquerying the network.